<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <button>测试1</button>
    <button>测试2</button>
    <button>测试3</button>
    <!-- 需求： 点击某个按钮，提示“点击的是第n个按钮” -->
    <script>
        // 错误场景及解决
        // var btns = document.getElementsByTagName('button')
        //     // 注意：[btns] 不是一个数组，它是一个伪数组
        //     // 每次获取[btns.length] 其实都是需要进行计算的（因为它是伪数组）
        //     // 所以为了性能更好，在此处赋值，就只需计算一次
        // for (var i = 0, length = btns.length; i < length; i++) {
        //     var btn = btns[i];
        //     // 存到自身
        //     btn.index = i
        //     btn.onclick = function() { // 遍历加监听
        //         alert('第' + (this.index + 1) + '个') // 结果  全是[4]
        //     }
        // }

        for (var i = 0, length = btns.length; i < length; i++) {
            // 利用闭包
            var btn = btns[i]
            btn.onclick = function() {
                alert('第' + (j + 1) + '个')
            }
        }
    </script>
</body>

</html>